[pipelineId].tsx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { FeatureFlagContext, useParams } from 'common'
  2. import { useRouter } from 'next/router'
  3. import { useContext, useEffect } from 'react'
  4. import { ReplicationPipelineStatus } from '@/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus'
  5. import { useIsETLPrivateAlpha } from '@/components/interfaces/Database/Replication/useIsETLPrivateAlpha'
  6. import DatabaseLayout from '@/components/layouts/DatabaseLayout/DatabaseLayout'
  7. import DefaultLayout from '@/components/layouts/DefaultLayout'
  8. import { ScaffoldContainer, ScaffoldSection } from '@/components/layouts/Scaffold'
  9. import { FormHeader } from '@/components/ui/Forms/FormHeader'
  10. import { PipelineRequestStatusProvider } from '@/state/replication-pipeline-request-status'
  11. import type { NextPageWithLayout } from '@/types'
  12. const DatabaseReplicationPage: NextPageWithLayout = () => {
  13. const router = useRouter()
  14. const { ref: projectRef } = useParams()
  15. const { hasLoaded } = useContext(FeatureFlagContext)
  16. const enablePgReplicate = useIsETLPrivateAlpha()
  17. useEffect(() => {
  18. if (hasLoaded && !enablePgReplicate) {
  19. router.replace(`/project/${projectRef}/database/replication`)
  20. }
  21. }, [router, hasLoaded, projectRef, enablePgReplicate])
  22. return (
  23. <>
  24. {enablePgReplicate && (
  25. <PipelineRequestStatusProvider>
  26. <ScaffoldContainer>
  27. <ScaffoldSection>
  28. <div className="col-span-12">
  29. <FormHeader title="Replication" />
  30. <ReplicationPipelineStatus />
  31. </div>
  32. </ScaffoldSection>
  33. </ScaffoldContainer>
  34. </PipelineRequestStatusProvider>
  35. )}
  36. </>
  37. )
  38. }
  39. DatabaseReplicationPage.getLayout = (page) => (
  40. <DefaultLayout>
  41. <DatabaseLayout title="Replication">{page}</DatabaseLayout>
  42. </DefaultLayout>
  43. )
  44. export default DatabaseReplicationPage